﻿//using System;
//using System.Buffers;
//using System.Collections.Generic;
//using System.Data.Common;
//using System.Text;

//namespace SharpSoft.Data
//{
//    using System.Text.Json;
//    public static class JsonHelper
//    {

//        public static void WriteObject(Utf8JsonWriter writer, object value)
//        {
//            if (value == null)
//            {
//                writer.WriteNullValue();
//            }
//            var typecode = Type.GetTypeCode(value.GetType());
//            switch (typecode)
//            {
//                case TypeCode.Boolean:
//                    writer.WriteBooleanValue((bool)value);
//                    break;
//                case TypeCode.Byte:
//                    writer.WriteNumberValue((byte)value);
//                    break;
//                case TypeCode.SByte:
//                    writer.WriteNumberValue((sbyte)value);
//                    break;
//                case TypeCode.Single:
//                    writer.WriteNumberValue((float)value);
//                    break;
//                case TypeCode.UInt16:
//                    writer.WriteNumberValue((ushort)value);
//                    break;
//                case TypeCode.UInt32:
//                    writer.WriteNumberValue((uint)value);
//                    break;
//                case TypeCode.UInt64:
//                    writer.WriteNumberValue((ulong)value);
//                    break;
//                case TypeCode.Int16:
//                    writer.WriteNumberValue((short)value);
//                    break;
//                case TypeCode.Int32:
//                    writer.WriteNumberValue((int)value);
//                    break;
//                case TypeCode.Int64:
//                    writer.WriteNumberValue((long)value);
//                    break;
//                case TypeCode.Decimal:
//                    writer.WriteNumberValue((decimal)value);
//                    break;
//                case TypeCode.Double:
//                    writer.WriteNumberValue((double)value);
//                    break;
//                case TypeCode.DateTime:
//                    writer.WriteStringValue(((DateTime)value));
//                    break;
//                case TypeCode.Char:
//                    writer.WriteStringValue(value.ToString());
//                    break;
//                case TypeCode.String:
//                    writer.WriteStringValue((string)value);
//                    break;
//                case TypeCode.DBNull:
//                    writer.WriteNullValue();
//                    break;
//                case TypeCode.Empty:
//                    writer.WriteNullValue();
//                    break;
//                case TypeCode.Object:
//                    if (value is byte[] bytes)
//                    {
//                        writer.WriteBase64StringValue(bytes);
//                    }
//                    break;
//                default:
//                    break;
//            }
//        }


//    }
//}
